home *** CD-ROM | disk | FTP | other *** search
/ Komputer for Alle 1999 #11 / K-CD-1999-11.iso / Web / Extreme Sport / tppjava / upsn.class (.txt)
Encoding:
Java Class File  |  1999-06-07  |  10.4 KB  |  507 lines

  1. import java.applet.Applet;
  2. import java.awt.BorderLayout;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Event;
  7. import java.awt.Font;
  8. import java.awt.FontMetrics;
  9. import java.awt.Graphics;
  10. import java.awt.Rectangle;
  11. import java.io.DataInputStream;
  12. import java.io.FilterInputStream;
  13. import java.io.IOException;
  14. import java.net.MalformedURLException;
  15. import java.net.URL;
  16. import java.util.Date;
  17. import java.util.Vector;
  18.  
  19. public class upsn extends Applet implements Runnable {
  20.    public static final String AllowedHost = new String("www.kark.com");
  21.    public static final String AllowedFile = new String("/host1207/TalTry/TalTry1/");
  22.    public static final boolean CheckAllowedFile = true;
  23.    public static final int NO_HEADLINE = 31;
  24.    public static final Date EXPIRYDATE = new Date("Oct 9 1997");
  25.    public static final int SHORTSIZE = 30;
  26.    public static final String CYCLESPARAM = new String("CyclesTillRead");
  27.    public static final String MESSAGEDELAYPARAM = new String("MessageDelay");
  28.    public static final String FRAMEWIDTHPARAM = new String("FrameWidth");
  29.    public static final String FRAMECOLORPARAM = new String("FrameColor");
  30.    public static final String INPUTFILETYPEPARAM = new String("InputFileType");
  31.    public static final String HGLOBALBGCOLORPARAM = new String("HGlobalBGColor");
  32.    public static final String HGLOBALFGCOLORPARAM = new String("HGlobalFGColor");
  33.    public static final String SGLOBALBGCOLORPARAM = new String("SGlobalBGColor");
  34.    public static final String SGLOBALFGCOLORPARAM = new String("SGlobalFGColor");
  35.    static Vector headlinevector = new Vector(31);
  36.    static int CurrentHeadlineCounter;
  37.    static String HeadlinesFile = new String("/../upsnin.mcm");
  38.    public static URL CODEBASE;
  39.    public static int CyclesTillRead;
  40.    public static int MessageDelay;
  41.    public static int FrameWidth;
  42.    public static Color FrameColor;
  43.    public static Color HGlobalBGColor;
  44.    public static Color HGlobalFGColor;
  45.    public static Color SGlobalBGColor;
  46.    public static Color SGlobalFGColor;
  47.    public static int FrameHighlight;
  48.    public static int FrameHighlightMouse;
  49.    public static String InputFileType;
  50.    Thread engine;
  51.  
  52.    public void init() {
  53.       System.out.println("This software is brought to you by SNG CHICAGO,\nhttp://www.mcmtech.com, support@sngchicago.com.\nWritten by Tal Katzir.\n");
  54.  
  55.       try {
  56.          String var1 = ((Applet)this).getParameter(CYCLESPARAM);
  57.          CyclesTillRead = Integer.parseInt(var1);
  58.       } catch (NumberFormatException var10) {
  59.          System.err.println("Not a valid number in 'cycles' : \n" + var10);
  60.       }
  61.  
  62.       try {
  63.          String var11 = ((Applet)this).getParameter(MESSAGEDELAYPARAM);
  64.          MessageDelay = Integer.parseInt(var11);
  65.       } catch (NumberFormatException var9) {
  66.          MessageDelay = 5;
  67.          System.err.println("Not a valid number in 'messagedelay' : \n" + var9);
  68.          System.out.println("Choosed '5' for 'messagedelay'\n");
  69.       }
  70.  
  71.       try {
  72.          String var12 = ((Applet)this).getParameter(FRAMEWIDTHPARAM);
  73.          FrameWidth = Integer.parseInt(var12);
  74.       } catch (NumberFormatException var8) {
  75.          FrameWidth = 3;
  76.          System.err.println("Not a valid number in 'framewidth' : \n" + var8);
  77.          System.out.println("Choosed '3' for 'framewidth'\n");
  78.       }
  79.  
  80.       String var13 = ((Applet)this).getParameter(FRAMECOLORPARAM);
  81.       if (var13 != null) {
  82.          FrameColor = String2ColorMethod(var13);
  83.       } else {
  84.          FrameColor = Color.blue;
  85.          System.err.println("Not a valid color in 'FrameColor'");
  86.          System.out.println("Choosed 'blue' for 'FrameColor'\n");
  87.       }
  88.  
  89.       String var2 = ((Applet)this).getParameter(HGLOBALBGCOLORPARAM);
  90.       if (var2 != null) {
  91.          HGlobalBGColor = String2ColorMethod(var2);
  92.       } else {
  93.          HGlobalBGColor = Color.red;
  94.          System.err.println("Not a valid color in 'HGlobalBGColor'");
  95.          System.out.println("Choosed 'red' for 'HGlobalBGColor'\n");
  96.       }
  97.  
  98.       String var3 = ((Applet)this).getParameter(HGLOBALFGCOLORPARAM);
  99.       if (var3 != null) {
  100.          HGlobalFGColor = String2ColorMethod(var3);
  101.       } else {
  102.          HGlobalFGColor = Color.white;
  103.          System.err.println("Not a valid color in 'HGlobalFGColor'");
  104.          System.out.println("Choosed 'white' for 'HGlobalFGColor'\n");
  105.       }
  106.  
  107.       String var4 = ((Applet)this).getParameter(SGLOBALBGCOLORPARAM);
  108.       if (var4 != null) {
  109.          SGlobalBGColor = String2ColorMethod(var4);
  110.       } else {
  111.          SGlobalBGColor = Color.white;
  112.          System.err.println("Not a valid color in 'SGlobalBGColor'");
  113.          System.out.println("Choosed 'white' for 'SGlobalBGColor'\n");
  114.       }
  115.  
  116.       String var5 = ((Applet)this).getParameter(SGLOBALFGCOLORPARAM);
  117.       if (var5 != null) {
  118.          SGlobalFGColor = String2ColorMethod(var5);
  119.       } else {
  120.          SGlobalFGColor = Color.red;
  121.          System.err.println("Not a valid color in 'SGlobalFGColor'");
  122.          System.out.println("Choosed 'red' for 'SGlobalFGColor'\n");
  123.       }
  124.  
  125.       String var6 = ((Applet)this).getParameter(INPUTFILETYPEPARAM);
  126.       if (var6 != null) {
  127.          var6 = var6.trim();
  128.          var6 = var6.toLowerCase();
  129.          if (var6.equalsIgnoreCase("txt")) {
  130.             InputFileType = "txt";
  131.          } else {
  132.             InputFileType = "mcm";
  133.          }
  134.       } else {
  135.          InputFileType = "mcm";
  136.       }
  137.  
  138.       InputFileType = "txt";
  139.       HeadlinesFile = "/../upsnin." + InputFileType;
  140.       ((Container)this).setLayout(new BorderLayout());
  141.       CODEBASE = ((Applet)this).getCodeBase();
  142.  
  143.       for(int var7 = 0; var7 < 31; ++var7) {
  144.          headlinevector.addElement(new upsnitm("", "", ""));
  145.       }
  146.  
  147.       headlinevector.setElementAt(new upsnitm("Please Wait", "Retrieving Headlines...", "http://www.sngchicago.com"), 0);
  148.       headlinevector.setElementAt(new upsnitm("E", "END.", ""), 1);
  149.    }
  150.  
  151.    public void run() {
  152.       Thread var1 = Thread.currentThread();
  153.       var1.setPriority(1);
  154.       new upsnitm("First", "First line in Headline.", "");
  155.       int var2 = 0;
  156.  
  157.       while(true) {
  158.          if (var2 >= CyclesTillRead || var2 == 0) {
  159.             headlinevector = ReadSimpleFromFile(CODEBASE + HeadlinesFile);
  160.             var2 = 0;
  161.          }
  162.  
  163.          ++var2;
  164.          boolean var3 = true;
  165.          int var4 = 0;
  166.          String var5 = "";
  167.  
  168.          while(var3) {
  169.             var5 = ((upsnitm)headlinevector.elementAt(var4)).message;
  170.             if (var5.startsWith("END")) {
  171.                var5 = "Hello World !";
  172.                var3 = false;
  173.                var4 = 0;
  174.             }
  175.  
  176.             if (var3) {
  177.                CurrentHeadlineCounter = var4;
  178.                this.redraw();
  179.                ++var4;
  180.                Thread.currentThread();
  181.                Thread.yield();
  182.  
  183.                try {
  184.                   Thread.currentThread();
  185.                   Thread.sleep((long)(MessageDelay * 1000));
  186.                } catch (InterruptedException var6) {
  187.                   System.err.println("Exception in sleep !");
  188.                }
  189.             }
  190.          }
  191.  
  192.          Thread.currentThread();
  193.          Thread.yield();
  194.       }
  195.    }
  196.  
  197.    public void start() {
  198.       if (this.engine == null) {
  199.          this.engine = new Thread(this);
  200.          this.engine.start();
  201.       }
  202.  
  203.    }
  204.  
  205.    public void stop() {
  206.    }
  207.  
  208.    public boolean handleEvent(Event var1) {
  209.       if (var1.id == 201) {
  210.          System.exit(0);
  211.       }
  212.  
  213.       if (var1.id == 501) {
  214.          try {
  215.             ((Applet)this).getAppletContext().showDocument(new URL(((upsnitm)headlinevector.elementAt(CurrentHeadlineCounter)).url));
  216.          } catch (MalformedURLException var3) {
  217.             System.err.println("MalformedURLException: " + var3);
  218.          } catch (IOException var4) {
  219.             System.err.println("IOException: " + var4);
  220.          }
  221.       }
  222.  
  223.       if (var1.id == 504) {
  224.          ((Applet)this).getAppletContext().showStatus(((upsnitm)headlinevector.elementAt(CurrentHeadlineCounter)).url);
  225.          FrameHighlightMouse = 1;
  226.          this.redraw();
  227.       }
  228.  
  229.       if (var1.id == 503) {
  230.          ((Applet)this).getAppletContext().showStatus(((upsnitm)headlinevector.elementAt(CurrentHeadlineCounter)).url);
  231.       }
  232.  
  233.       if (var1.id == 505) {
  234.          ((Applet)this).getAppletContext().showStatus("");
  235.          FrameHighlightMouse = 0;
  236.          this.redraw();
  237.       }
  238.  
  239.       return false;
  240.    }
  241.  
  242.    public void paint(Graphics var1) {
  243.       int var2 = 0;
  244.       int var3 = 0;
  245.       int var4 = 0;
  246.       int var5 = 0;
  247.       int var6 = 0;
  248.       int var7 = 0;
  249.       int var8 = 0;
  250.       Rectangle var9 = ((Component)this).bounds();
  251.       Font var10 = var1.getFont();
  252.       var1.setFont(new Font(var10.getName(), 0, var10.getSize() + 2));
  253.       Font var11 = new Font(var10.getName(), 0, var9.height - FrameWidth * 2 - 4);
  254.       Font var12 = new Font(var10.getName(), 1, var9.height - FrameWidth * 2 - 4);
  255.       new String("");
  256.       Double var14 = new Double(0.3 * (double)var9.width);
  257.       var2 = var14.intValue() - FrameWidth;
  258.       var5 = var2 - FrameWidth - 2;
  259.       var3 = var2 / 8;
  260.       String var13 = ((upsnitm)headlinevector.elementAt(CurrentHeadlineCounter)).name;
  261.       FontMetrics var15 = var1.getFontMetrics(var12);
  262.       FontMetrics var16 = var1.getFontMetrics(var11);
  263.  
  264.       for(var6 = var15.stringWidth(var13); var5 < var6; var6 = var15.stringWidth(var13)) {
  265.          var13 = var13.substring(0, var13.length() - 1);
  266.       }
  267.  
  268.       var3 = var13.length();
  269.       var4 = var5 / 2 - var6 / 2 + FrameWidth + 1;
  270.       var1.setColor(HGlobalBGColor);
  271.       var1.fillRect(0, 0, var2, var9.height);
  272.       var1.setColor(HGlobalFGColor);
  273.       var1.setFont(var12);
  274.       var1.drawString(var13, var4, var9.height - FrameWidth - var15.getDescent() - 1);
  275.       var3 = (var9.width - var2) / 8;
  276.       var13 = ((upsnitm)headlinevector.elementAt(CurrentHeadlineCounter)).message;
  277.       var8 = var16.stringWidth(var13);
  278.  
  279.       for(var7 = var9.width - var2 - FrameWidth - 2; var7 < var8 && var7 > 0; var8 = var16.stringWidth(var13)) {
  280.          var13 = var13.substring(0, var13.length() - 1);
  281.       }
  282.  
  283.       var3 = var13.length();
  284.       var4 = var2 + 1 + (var7 / 2 - var8 / 2);
  285.       var1.setColor(SGlobalBGColor);
  286.       var1.fillRect(var2, 0, var9.width - var2, var9.height);
  287.       var1.setColor(SGlobalFGColor);
  288.       var1.setFont(var11);
  289.       var1.drawString(var13, var4, var9.height - FrameWidth - var16.getDescent());
  290.       var1.setColor(FrameColor);
  291.  
  292.       for(int var17 = 0; var17 < FrameWidth; ++var17) {
  293.          var1.drawRect(var17, var17, var9.width - 2 * var17 - 1, var9.height - 2 * var17 - 1);
  294.       }
  295.  
  296.       if (FrameHighlightMouse == 1 && FrameHighlight == 1) {
  297.          var1.setColor(Color.white);
  298.          var1.drawRect(0, 0, var9.width - 1, var9.height - 1);
  299.       }
  300.  
  301.       if (FrameHighlightMouse == 1) {
  302.          ((Applet)this).getAppletContext().showStatus(((upsnitm)headlinevector.elementAt(CurrentHeadlineCounter)).url);
  303.       }
  304.  
  305.    }
  306.  
  307.    public void redraw(int var1) {
  308.       ((Component)this).repaint();
  309.    }
  310.  
  311.    public void redraw() {
  312.       ((Component)this).repaint();
  313.    }
  314.  
  315.    public void update(Graphics var1) {
  316.       this.paint(var1);
  317.    }
  318.  
  319.    public static Vector ReadSimpleFromFile(String var0) {
  320.       new String("");
  321.       String var2 = new String("");
  322.       boolean var3 = true;
  323.       boolean var4 = true;
  324.       int var5 = 0;
  325.       if (InputFileType == "mcm") {
  326.          String var6 = "";
  327.          String var7 = "";
  328.          String var8 = "";
  329.  
  330.          try {
  331.             URL var9 = new URL(var0);
  332.             DataInputStream var10 = new DataInputStream(var9.openStream());
  333.             int var11 = 0;
  334.  
  335.             for(upsnitm var12 = new upsnitm("", "", ""); var3; var8 = "") {
  336.                String var1 = var10.readLine();
  337.                var1 = var1.trim();
  338.                var5 = var1.length();
  339.                int var13 = 0;
  340.  
  341.                for(int var14 = 0; var13 < var5; ++var13) {
  342.                   if (var1.charAt(var13) == '|') {
  343.                      switch (var14) {
  344.                         case 0:
  345.                            var12.name = var2;
  346.                            var6 = var2;
  347.                            break;
  348.                         case 1:
  349.                            var12.message = var2;
  350.                            var7 = var2;
  351.                            break;
  352.                         case 2:
  353.                            var12.url = var2;
  354.                            var8 = var2;
  355.                      }
  356.  
  357.                      var2 = "";
  358.                      ++var14;
  359.                   } else {
  360.                      var2 = var2 + var1.substring(var13, var13 + 1);
  361.                   }
  362.                }
  363.  
  364.                headlinevector.setElementAt(new upsnitm(var6, var7, var8), var11);
  365.                if (var1.startsWith("E|END")) {
  366.                   var3 = false;
  367.                }
  368.  
  369.                var12.name = "";
  370.                var12.message = "";
  371.                ++var11;
  372.                var6 = "";
  373.                var7 = "";
  374.             }
  375.  
  376.             ((FilterInputStream)var10).close();
  377.          } catch (MalformedURLException var17) {
  378.             System.err.println("MalformedURLException: " + var17);
  379.          } catch (IOException var18) {
  380.             System.err.println("IOException: " + var18);
  381.          }
  382.       }
  383.  
  384.       if (InputFileType == "txt") {
  385.          String var24 = "";
  386.          String var25 = "";
  387.          String var26 = "";
  388.  
  389.          try {
  390.             URL var27 = new URL(var0);
  391.             DataInputStream var28 = new DataInputStream(var27.openStream());
  392.             int var29 = 0;
  393.             upsnitm var30 = new upsnitm("", "", "");
  394.  
  395.             while(var3) {
  396.                String var20 = var28.readLine();
  397.                var20 = var20.trim();
  398.                var5 = var20.length();
  399.                if (var20.startsWith("Header=")) {
  400.                   var24 = var20.substring(7);
  401.                }
  402.  
  403.                if (var20.startsWith("SubHeader=")) {
  404.                   var25 = var20.substring(10);
  405.                }
  406.  
  407.                if (var20.startsWith("URL=")) {
  408.                   var26 = var20.substring(4);
  409.                }
  410.  
  411.                if (var20.startsWith("EndHeadline")) {
  412.                   var4 = false;
  413.                   ++var29;
  414.                }
  415.  
  416.                if (var20.startsWith("Endmcm")) {
  417.                   var3 = false;
  418.                   var4 = false;
  419.                   var24 = "E";
  420.                   var25 = "END";
  421.                   var26 = "http://www.sngchicago.com";
  422.                   ++var29;
  423.                }
  424.  
  425.                if (!var4) {
  426.                   headlinevector.setElementAt(new upsnitm(var24, var25, var26), var29 - 1);
  427.                   var4 = true;
  428.                   var30.name = "";
  429.                   var30.message = "";
  430.                   var24 = "";
  431.                   var25 = "";
  432.                   var26 = "";
  433.                }
  434.             }
  435.  
  436.             ((FilterInputStream)var28).close();
  437.          } catch (MalformedURLException var15) {
  438.             System.err.println("MalformedURLException: " + var15);
  439.          } catch (IOException var16) {
  440.             System.err.println("IOException: " + var16);
  441.          }
  442.       }
  443.  
  444.       return headlinevector;
  445.    }
  446.  
  447.    public static Color String2ColorMethod(String var0) {
  448.       if (var0 != null) {
  449.          String var1 = var0.trim();
  450.          var1 = var1.toLowerCase();
  451.          if (var1.equals("red")) {
  452.             return Color.red;
  453.          }
  454.  
  455.          if (var1.equals("green")) {
  456.             return Color.green;
  457.          }
  458.  
  459.          if (var1.equals("black")) {
  460.             return Color.black;
  461.          }
  462.  
  463.          if (var1.equals("lightGray")) {
  464.             return Color.lightGray;
  465.          }
  466.  
  467.          if (var1.equals("blue")) {
  468.             return Color.blue;
  469.          }
  470.  
  471.          if (var1.equals("pink")) {
  472.             return Color.pink;
  473.          }
  474.  
  475.          if (var1.equals("orange")) {
  476.             return Color.orange;
  477.          }
  478.  
  479.          if (var1.equals("magenta")) {
  480.             return Color.magenta;
  481.          }
  482.  
  483.          if (var1.equals("cyan")) {
  484.             return Color.cyan;
  485.          }
  486.  
  487.          if (var1.equals("white")) {
  488.             return Color.white;
  489.          }
  490.  
  491.          if (var1.equals("yellow")) {
  492.             return Color.yellow;
  493.          }
  494.  
  495.          if (var1.equals("gray")) {
  496.             return Color.gray;
  497.          }
  498.  
  499.          if (var1.equals("darkGray")) {
  500.             return Color.darkGray;
  501.          }
  502.       }
  503.  
  504.       return Color.white;
  505.    }
  506. }
  507.